// 扁平化的思路大致是将多维数组转变为一维数组，通过循环的方式 在遇到

let ary = [1, [2, [3, [4, 5]]], 6];

arr_flat = ary.flat(Infinity); //将多维数组扁平化处理  ie浏览器不支持

console.log(arr_flat);

//递归方法 将数组扁平化
let result = [];
let fn = function (ary) {
  for (let i = 0; i < ary.length; i++) {
    let item = ary[i];
    if (Array.isArray(ary[i])) {
      fn(item);
    } else {
      result.push(item);
    }
  }
};

fn(ary);

console.log(result);

// function flatten(aryy) {
//   return aryy.reduce((pre, cur) => {
//     return pre.concat(Array.isArray(cur) ? flatten(cur) : cur);
//   });
// }
// let aryy = [1, 2, [3, 4], [5, [6, 7]]];
// console.log(flatten(aryy));

// 扩展运算符 扁平化
while (ary.some(Array.isArray)) {
  ary = [].concat(...ary);
}


console.log(ary)